package com.bestpay.demo2.task.dubbo;

import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;

import org.springframework.context.annotation.Configuration;

/**
 * <p>
 * task模块的职责决定了它不会作为Dubbo的Provider角色存在，然而task依然可能作为Dubbo的Consumer角色存在，所以task模块中依然需要使用{@code @EnableDubbo}注解来处理{@code @DubboReference}，正如下面的使用方法：
 * <hr>
 * <blockquote><pre>
 *     &#64;Configuration
 *     &#64;EnableDubbo(scanBasePackages = "com.bestpay.demo2")
 *     public class DubboConfiguration {
 *
 *     }
 * </pre></blockquote>
 * <hr>
 * <p>
 * 我们约定task模块以及其依赖的模块中都不存在被{@code @DubboService}标记的类，因为被{@code @DubboService}标记的类只会存在于service模块。
 * <p>
 * 在这种约定下，即使task模块使用了{@code @EnableDubbo}注解，也同样达到了<b>Dubbo RPC</b>和<b>MQ消费消息</b>的拆封部署的目的。
 */
@Configuration
@EnableDubbo(scanBasePackages = "com.bestpay.demo2")
public class DubboConfiguration {

}
